1. Field
The present disclosure broadly relates to the fields of databases and web services, and specifically, to optimizing retrieval of data.
2. Description of the Related Art
Many data-intensive services are provided in a cloud i.e., are scattered in remote locations from the client. Accordingly, many of these services are implemented over the HyperText Transfer Protocol (HTTP). That is, HTTP is used for the servers providing the data to communicate with the remote clients that receive the data. Because of the stateless characteristics of HTTP, the state information is not stored on the server but is managed by the client as such each request from the client contains all the information necessary for the server to process the request.
Today, the trend for new, internet-centric, services is to adopt a Representation State Transfer (REST) based architecture. REST provides a uniform interface between various components of the system. REST-based (aka. RESTful) implementations are decoupled from the services they provide, which encourages independent development of this uniform interface. REST is an abstraction of the architectural elements within a distributed multimedia system. REST ignores the syntax and specifics of various components in the system and instead focuses on the role of the resource and its interaction with other components.
REST is convenient for facilitating communication among various different components in the system. On the other hand, this uniform interface may not be the optimal solution for a particular system. The uniform nature of REST does not allow for specific optimization which could improve efficiency of transmissions. Accordingly, some data services drift away from the strict implementation of the REST. However, many of these data services still adhere to the following two principles:
1. The first principle is to use the HTTP-defined interface. That is, the commands still employ the HTTP verbs (POST, PUT, GET, DELETE, HEAD) according to their design, thus enabling properties like safety (GET, HEAD) and idempotence (PUT, DELETE), see e.g., article by Leonard Richardson and Sam Ruby titled “RESTful Web Services.” O'reilly Media, May 2007.
2. The second principle is to adopt a resource-oriented representation of the data where each data object is treated as a resource that is addressable via (at least) a uniform resource identifier (URI).
When these two principles are adopted, even in these REST modified systems, HTTP caching is enabled, which is important to the overall performance of web services. The multimedia data of complex and/or remote systems being transmitted in the cloud would benefit from cache optimization e.g., HTTP caching optimization techniques. Further, because of the nature of HTTP caching, a robust policy to preserve integrity of the cache is needed including evicting stale data, evicting broken dependencies, and incomplete objects.